package la.iok.hzsvn.lewin.movie.cloud.mapper;

import la.iok.hzsvn.lewin.movie.cloud.entity.OrgUnit;
import la.iok.hzsvn.lewin.mybatis.mapper.BaseMapper;
import la.iok.hzsvn.share.annotations.NotEmpty;
import la.iok.hzsvn.share.annotations.NotNull;
import la.iok.hzsvn.share.annotations.NotNullElement;
import la.iok.hzsvn.share.annotations.Nullable;

import java.util.Collection;
import java.util.List;

public interface OrgUnitMapper extends BaseMapper<OrgUnit> {
    /**
     * 查询记录
     * @param type 组织类型
     * @param name 组织名称,模糊查询
     * @param parentId 父组织id
     */
    List<OrgUnit> list(Integer type, String name,Long parentId);

    /**
     * 查询指定组织下所有特定类型组织的id.不包含id为orgUnitId的组织
     * @param orgUnitId 组织id
     * @param type 组织类型
     * @return 所有查询到的组织的id
     */
    @NotNull
    @NotNullElement
    List<Long> orgUnitIds(@NotNull Long orgUnitId, @Nullable Integer type);

    /**
     * 查找加盟商所有店铺
     * @param parentIds 加盟商id集合
     * @return 店铺id列表
     */
    @NotNull
    @NotNullElement
    List<Long> childrenIds(@NotNull @NotNullElement @NotEmpty Collection<Long> parentIds);
}
